Non-volatile semiconductor memory devices, such as removable storage cards or Universal Serial Bus (USB) flash memory devices, have enabled increased portability of data and software applications. Data storage densities of non-volatile semiconductor memory devices are generally increasing and support greater performance in portable electronic devices. Some features that enable higher density, such as multi-level cell technologies, may benefit from stronger error detection and correction mechanisms, referred to as error correction coding (“ECC”) mechanisms.
For example, each sector of a flash drive, such as a 512-byte sector, may have has its own ECC mechanism that includes a fixed number of parity bits, such as 80 parity bits, for the sector. When multiple sectors are encoded together, instead of independently, the strength of the ECC improves. To illustrate, more errors can be corrected in a two-kilobyte (2 KB) word encoded with 320 parity bits than in four 512-byte words that are each independently encoded with 80 parity bits.
However, when multiple sectors are encoded together, such as in 2 KB words, a read request for a data word that is not aligned with the encoded word—i.e. a word that at least partially spans two encoded words—may require full reading and decoding of multiple encoded words. Thus, the gain in ECC strength by jointly encoding multiple sectors may be at least partially offset by decreased read performance when a requested word is not aligned with the encoded words.